//box.onclick = function(){
    //this.innerText = '新的内容'
    //this.className = 'change'
//}


//1.JS的变量
var num = 10
var myAge = 21
var maPhoneNum = 12345



//2.JS的数据类型
var num = 10 //number 数据类型
var myStr = '文本'
var myName = "fufu"//string 字符串类型
var myBool = true //true or false 布尔类型
var myNull = null //用于清空变量内容，表示空的
var myUn //undifine 容器的默认值
console.log(myName)
console.log(myUn)

//3.JS的运算符
var sum = 1 + 2 - 3 * 4 % 5
console.log(sum)

var resultStr ='你好' + 'JavaScript'
console.log(resultStr)

var isTrue = 39 > 1
console.log(isTrue)

console.log(2 === 2)//这里用三个等号是验证两个变量是不是严格相等，要求两边的数据类型都是相等的才是true


//4.JS的语句
//用于处理JS中的一些比较复杂的程序


//if
//if(39 > 1){
//    console.log('确实')
//}

if(39 < 1){
    console.log('对的')
}else{
    console.log('不对')
}

//if(false){
//    console.log(1)
//}else if(false){
//    console.log(2)
//}else if(true){
//    console.log(3)
//}else{
//    console.log(4)
//}

//for循环
//var sum = 0
//for(var i = 1;i <= 100 ; i++){
    //console.log('执行了')
    //console.log(i)

    //sum = sum + i //累加操作
    //sum += i //累加操作的便捷写法

    //如果我们希望取偶数的时候，可以将for循环和if结合起来使用
    //if(i % 2 === 0){
    //    sum += i
    //}
//}

//console.log(sum)



//5.JS的函数
// function getSum(start,end){
//     //声明getSum是个函数
//     //函数默认不会执行，需要调用才会执行
//     //函数调用时可以传入不同的参数值，来参与函数内的代码执行,()中的之就像两个变量一样可以随意命名
//     console.log('开始了')
//     var sum = 0
//     for(var i = start;i <= end ; i++){
//         sum += i

//     }
//     return sum
//     console.log('结束了')//return表示函数的执行已经结束了，所以函数中的return之后的代码都不会执行
// }

//getSum()//函数名+（）表示要调用这个函数

// var result1 =getSum(1,100)
// console.log(result1)

// var result2 = getSum(200,300)
// console.log(result2)









//在调用函数的时候关键值要变，功能代码也要变的情况
//比如说有时候要从1-100之间取奇数做加和的情况下

function getSumWithCondition(start,end,fn){
        var sum = 0
    for(var i = start;i <= end ; i++){
        if(fn(i)){
            sum += i
        }
        
    }
    return sum

}
//通过这样的一个形式将下面改变功能代码的部分传入到上面的主要函数中
var result3 = getSumWithCondition(1,100,function(n){
    if(n % 2 === 0){
        return true
    }
    return false
})

// console.log(result3)


//6.JS的数组
var myArr = [10,26,39,45,58]
// console.log(myArr.length)
// console.log(myArr[2])//通过索引的方式来指定所需要的数据，顺序从0开始
// console.log(myArr[0])
// console.log(myArr)


myArr.push(66)//push从数组末尾加入数据
myArr.unshift(86)//unshift从数组开始加入数据
//console.log(myArr)


var sum =0
for(var i =0 ; i < myArr.length ; i++){
    sum += myArr[i]
    //console.log(i,myArr[i])

}
//console.log(sum)

myArr.forEach(function(item,index){
    //使用forEach的方法来进行元素的遍历
    //console.log(item,index)
})


//6.JS中的对象
//对象可以存储不同的数据类型
var obj ={
    name : 'miku',
    age : 16,
    weight : 42,
    height : 158
}
// console.log(obj)
// console.log(obj.name)//访问obj中的其中的一个值
// console.log(obj.height)


//对象的遍历操作
for(var key in obj){
    //这里的key和obj其实是都可以修改的，key相当于i
    //console.log(key)
    //console.log(key[1])//这里可以取得每一个单词中的第二个字母
    console.log(key,obj[key])//基于key来获取到对应的值
}

console.log(obj['name'])//和对象的遍历操作实现的效果差不多，但一般不会这么写